package com.zz.tcp.case1;

import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;

public class Client {
    public static void main(String args[]) throws Exception {
        //1.创建Socket对象，并同时请求与服务端程序连接
        Socket socket = new Socket("127.0.0.1", 8888);

        //创建一个独立的线程，负责随机从socket中接收服务端的发送过来的消息
        new ClientReaderThread(socket).start();

        //2.从socket通信管道中的到一个字节输出流，用来发送数据
        OutputStream os = socket.getOutputStream();

        //将低级的字节输出流包装成数据输出流
        DataOutputStream dos = new DataOutputStream(os);

        Scanner sc = new Scanner(System.in);
        while(true){
            System.out.println("请说：");
            String msg = sc.nextLine();

            //一旦用户输入了exit就退出客户端程序
            if("exit".equals(msg)){
                System.out.println("欢迎您下次光临！");
                dos.close();
                socket.close();
                break;
            }

            //4.开始写数据出去
            dos.writeUTF(msg);
            //5.刷新数据，防止数据留在管道
            dos.flush();
        }
    }
}
